#ifndef __PERSPECTIVE_VIEW_H__
#define __PERSPECTIVE_VIEW_H__

#include "view.h"
#include "camera.h"
#include "model/perspective_model.h"
#include <vector>

class PerspectiveView : public View{
	private:
		GLuint hAxis;
		GLuint hGrid;
		Camera camera;
		PerspectiveModel& pModel;
	public:
		PerspectiveView(Rectangle viewport,GLuint axisHandle,GLuint gridHandle,PerspectiveModel& pModel);
		~PerspectiveView();

		void setEnv();
		void display();
		void update(Observer* observer);

		void drawRail(std::vector<Point>& v);
		void drawCurveShadow();

		void drawColumns();

		Camera& getCamera(){
			return this->camera;
		}
};

#endif // __PERSPECTIVE_VIEW_H__
